#include <stdio.h>

void modifyReferValue(int *ptr) {
    // 打印传入的指针所指向的值和地址
    printf("Inside function:\n");
    printf("Value: %d\n", *ptr);  // 解引用指针，打印值
    printf("Address: %p\n", (void*)ptr);  // 打印指针本身的地址
    *ptr = 100;  // 修改指针指向的变量的值
}

void modifyValue(int ptr) {
    // 打印传入的指针所指向的值和地址
    printf("Inside function:\n");
    printf("Value: %d\n", ptr);  // 打印传入的值
    printf("Address: %p\n", (void*)&ptr);  // 打印指针本身的地址
    ptr = 100;  // 修改传入的值
}

int main() {
    int num = 50;
    printf("Before function call:\n");
    printf("Value: %d\n", num);  // 打印变量的值
    printf("Address: %p\n", &num);  // 打印变量的地址

    // modifyReferValue(&num);  // 传递变量的地址给函数
    modifyValue(num);  // 传递变量的值给函数

    printf("After function call:\n");
    printf("Value: %d\n", num);  // 打印函数修改后的值
    printf("Address: %p\n", (void*)&num);  // 打印变量的地址
    return 0;
}
